package icons

import (
	"path/filepath"
	"strings"
)

// NOTE: Visit next links for inspiration:
// https://github.com/eza-community/eza/blob/main/src/output/icons.rs
// https://github.com/nvim-tree/nvim-web-devicons/blob/master/lua/nvim-web-devicons/icons-default.lua

var (
	DEFAULT_FILE_ICON      = IconProperties{Icon: "\uf15b", Color: 241} // 
	DEFAULT_SUBMODULE_ICON = IconProperties{Icon: "\uf1d3", Color: 202} // 
	DEFAULT_DIRECTORY_ICON = IconProperties{Icon: "\uf07b", Color: 241} // 
)

var nameIconMap = map[string]IconProperties{
	".atom":                      {Icon: "\ue764", Color: 241},     // 
	".babelrc":                   {Icon: "\ue639", Color: 185},     // 
	".bash_profile":              {Icon: "\ue615", Color: 113},     // 
	".bashprofile":               {Icon: "\ue615", Color: 113},     // 
	".bashrc":                    {Icon: "\ue795", Color: 113},     // 
	".dockerignore":              {Icon: "\U000f0868", Color: 68},  // 󰡨
	".ds_store":                  {Icon: "\ue615", Color: 239},     // 
	".editorconfig":              {Icon: "\ue652", Color: 255},     // 
	".env":                       {Icon: "\uf462", Color: 227},     // 
	".eslintignore":              {Icon: "\ue655", Color: 56},      // 
	".eslintrc":                  {Icon: "\ue655", Color: 56},      // 
	".gitattributes":             {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".git-blame-ignore-revs":     {Icon: "\ue702", Color: 196},     // 
	".gitconfig":                 {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".github":                    {Icon: "\uf408", Color: 241},     // 
	".git":                       {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".gitignore":                 {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".gitlab-ci.yml":             {Icon: "\uf296", Color: 196},     // 
	".gitmodules":                {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".gtkrc-2.0":                 {Icon: "\uf362", Color: 231},     // 
	".gvimrc":                    {Icon: "\ue62b", Color: 28},      // 
	"_gvimrc":                    {Icon: "\ue62b", Color: 28},      // 
	".idea":                      {Icon: "\ue7b5", Color: 241},     // 
	".justfile":                  {Icon: "\uf0ad", Color: 66},      // 
	".luaurc":                    {Icon: "\ue615", Color: 75},      // 
	".mailmap":                   {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".npmignore":                 {Icon: "\ue71e", Color: 197},     // 
	".npmrc":                     {Icon: "\ue71e", Color: 197},     // 
	".nuxtrc":                    {Icon: "\U000f1106", Color: 42},  // 󱄆
	".nvmrc":                     {Icon: "\ue718", Color: 71},      // 
	".prettierignore":            {Icon: "\ue6b4", Color: 33},      // 
	".prettierrc":                {Icon: "\ue6b4", Color: 33},      // 
	".prettierrc.json5":          {Icon: "\ue6b4", Color: 33},      // 
	".prettierrc.json":           {Icon: "\ue6b4", Color: 33},      // 
	".prettierrc.toml":           {Icon: "\ue6b4", Color: 33},      // 
	".prettierrc.yaml":           {Icon: "\ue6b4", Color: 33},      // 
	".prettierrc.yml":            {Icon: "\ue6b4", Color: 33},      // 
	".rvm":                       {Icon: "\ue21e", Color: 160},     // 
	".settings.json":             {Icon: "\ue70c", Color: 98},      // 
	".SRCINFO":                   {Icon: "\uf129", Color: 230},     // 
	".Trash":                     {Icon: "\uf1f8", Color: 241},     // 
	".vimrc":                     {Icon: "\ue62b", Color: 28},      // 
	"_vimrc":                     {Icon: "\ue62b", Color: 28},      // 
	".vscode":                    {Icon: "\ue70c", Color: 39},      // 
	".Xauthority":                {Icon: "\uf369", Color: 196},     // 
	".xinitrc":                   {Icon: "\uf369", Color: 196},     // 
	".Xresources":                {Icon: "\uf369", Color: 196},     // 
	".xsession":                  {Icon: "\uf369", Color: 196},     // 
	".zprofile":                  {Icon: "\ue615", Color: 113},     // 
	".zshenv":                    {Icon: "\ue615", Color: 113},     // 
	".zshrc":                     {Icon: "\ue795", Color: 113},     // 
	"bin":                        {Icon: "\ue5fc", Color: 241},     // 
	"brewfile":                   {Icon: "\ue791", Color: 52},      // 
	"bspwmrc":                    {Icon: "\uf355", Color: 236},     // 
	"build.gradle":               {Icon: "\ue660", Color: 24},      // 
	"build":                      {Icon: "\ue63a", Color: 113},     // 
	"build.zig.zon":              {Icon: "\ue6a9", Color: 172},     // 
	"cantorrc":                   {Icon: "\uf373", Color: 32},      // 
	"Cargo.lock":                 {Icon: "\ue7a8", Color: 216},     // 
	"Cargo.toml":                 {Icon: "\ue7a8", Color: 216},     // 
	"checkhealth":                {Icon: "\U000f04d9", Color: 75},  // 󰓙
	"cmakelists.txt":             {Icon: "\ue615", Color: 66},      // 
	"commit_editmsg":             {Icon: "\ue702", Color: 196},     // 
	"COMMIT_EDITMSG":             {Icon: "\ue702", Color: 239},     // 
	"commitlint.config.js":       {Icon: "\U000f0718", Color: 30},  // 󰜘
	"commitlint.config.ts":       {Icon: "\U000f0718", Color: 30},  // 󰜘
	"compose.yaml":               {Icon: "\uf308", Color: 68},      // 
	"compose.yml":                {Icon: "\uf308", Color: 68},      // 
	"config":                     {Icon: "\ue5fc", Color: 241},     // 
	"containerfile":              {Icon: "\U000f0868", Color: 68},  // 󰡨
	"copying":                    {Icon: "\ue60a", Color: 185},     // 
	"copying.lesser":             {Icon: "\ue60a", Color: 185},     // 
	"docker-compose.yaml":        {Icon: "\uf308", Color: 68},      // 
	"docker-compose.yml":         {Icon: "\uf308", Color: 68},      // 
	"dockerfile":                 {Icon: "\U000f0868", Color: 68},  // 󰡨
	"Dockerfile":                 {Icon: "\uf308", Color: 68},      // 
	"ds_store":                   {Icon: "\uf179", Color: 15},      // 
	"eslint.config.cjs":          {Icon: "\ue655", Color: 56},      // 
	"eslint.config.js":           {Icon: "\ue655", Color: 56},      // 
	"eslint.config.mjs":          {Icon: "\ue655", Color: 56},      // 
	"eslint.config.ts":           {Icon: "\ue655", Color: 56},      // 
	"ext_typoscript_setup.txt":   {Icon: "\ue772", Color: 208},     // 
	"favicon.ico":                {Icon: "\ue623", Color: 185},     // 
	"fp-info-cache":              {Icon: "\uf49b", Color: 231},     // 
	"fp-lib-table":               {Icon: "\uf34c", Color: 231},     // 
	"FreeCAD.conf":               {Icon: "\uf336", Color: 160},     // 
	"gemfile$":                   {Icon: "\ue791", Color: 52},      // 
	"gitignore_global":           {Icon: "\U000f02a2", Color: 202}, // 󰊢
	"gnumakefile":                {Icon: "\ue779", Color: 66},      // 
	"GNUmakefile":                {Icon: "\ue779", Color: 66},      // 
	"go.mod":                     {Icon: "\ue627", Color: 74},      // 
	"go.sum":                     {Icon: "\ue627", Color: 74},      // 
	"go.work":                    {Icon: "\ue627", Color: 74},      // 
	"gradle":                     {Icon: "\ue256", Color: 168},     // 
	"gradle.properties":          {Icon: "\ue660", Color: 24},      // 
	"gradlew":                    {Icon: "\ue660", Color: 24},      // 
	"gradle-wrapper.properties":  {Icon: "\ue660", Color: 24},      // 
	"gruntfile.babel.js":         {Icon: "\ue611", Color: 166},     // 
	"gruntfile.coffee":           {Icon: "\ue611", Color: 166},     // 
	"gruntfile.js":               {Icon: "\ue611", Color: 166},     // 
	"gruntfile.ls":               {Icon: "\ue611", Color: 166},     // 
	"gruntfile.ts":               {Icon: "\ue611", Color: 166},     // 
	"gtkrc":                      {Icon: "\uf362", Color: 231},     // 
	"gulpfile.babel.js":          {Icon: "\ue610", Color: 167},     // 
	"gulpfile.coffee":            {Icon: "\ue610", Color: 167},     // 
	"gulpfile.js":                {Icon: "\ue610", Color: 167},     // 
	"gulpfile.ls":                {Icon: "\ue610", Color: 168},     // 
	"gulpfile.ts":                {Icon: "\ue610", Color: 167},     // 
	"hidden":                     {Icon: "\uf023", Color: 241},     // 
	"hypridle.conf":              {Icon: "\uf359", Color: 37},      // 
	"hyprland.conf":              {Icon: "\uf359", Color: 37},      // 
	"hyprlock.conf":              {Icon: "\uf359", Color: 37},      // 
	"i3blocks.conf":              {Icon: "\uf35a", Color: 255},     // 
	"i3status.conf":              {Icon: "\uf35a", Color: 255},     // 
	"include":                    {Icon: "\ue5fc", Color: 241},     // 
	"ionic.config.json":          {Icon: "\ue7a9", Color: 33},      // 
	"justfile":                   {Icon: "\uf0ad", Color: 66},      // 
	"kalgebrarc":                 {Icon: "\uf373", Color: 32},      // 
	"kdeglobals":                 {Icon: "\uf373", Color: 32},      // 
	"kdenlive-layoutsrc":         {Icon: "\uf33c", Color: 110},     // 
	"kdenliverc":                 {Icon: "\uf33c", Color: 110},     // 
	"kritadisplayrc":             {Icon: "\uf33d", Color: 201},     // 
	"kritarc":                    {Icon: "\uf33d", Color: 201},     // 
	"lib":                        {Icon: "\uf121", Color: 241},     // 
	"localized":                  {Icon: "\uf179", Color: 15},      // 
	"lxde-rc.xml":                {Icon: "\uf363", Color: 246},     // 
	"lxqt.conf":                  {Icon: "\uf364", Color: 32},      // 
	"Makefile":                   {Icon: "\ue975", Color: 241},     // 
	"mix.lock":                   {Icon: "\ue62d", Color: 140},     // 
	"mpv.conf":                   {Icon: "\uf36e", Color: 53},      // 
	"node_modules":               {Icon: "\ue718", Color: 197},     // 
	"npmignore":                  {Icon: "\ue71e", Color: 197},     // 
	"nuxt.config.cjs":            {Icon: "\U000f1106", Color: 42},  // 󱄆
	"nuxt.config.js":             {Icon: "\U000f1106", Color: 42},  // 󱄆
	"nuxt.config.mjs":            {Icon: "\U000f1106", Color: 42},  // 󱄆
	"nuxt.config.ts":             {Icon: "\U000f1106", Color: 42},  // 󱄆
	"package.json":               {Icon: "\ue71e", Color: 197},     // 
	"package-lock.json":          {Icon: "\ue71e", Color: 52},      // 
	"PKGBUILD":                   {Icon: "\uf303", Color: 38},      // 
	"platformio.ini":             {Icon: "\ue682", Color: 208},     // 
	"pom.xml":                    {Icon: "\ue674", Color: 52},      // 
	"prettier.config.cjs":        {Icon: "\ue6b4", Color: 33},      // 
	"prettier.config.js":         {Icon: "\ue6b4", Color: 33},      // 
	"prettier.config.mjs":        {Icon: "\ue6b4", Color: 33},      // 
	"prettier.config.ts":         {Icon: "\ue6b4", Color: 33},      // 
	"PrusaSlicerGcodeViewer.ini": {Icon: "\uf351", Color: 202},     // 
	"PrusaSlicer.ini":            {Icon: "\uf351", Color: 202},     // 
	"py.typed":                   {Icon: "\ue606", Color: 214},     // 
	"QtProject.conf":             {Icon: "\uf375", Color: 77},      // 
	"R":                          {Icon: "\U000f07d4", Color: 25},  // 󰟔
	"robots.txt":                 {Icon: "\U000f06a9", Color: 60},  // 󰚩
	"rubydoc":                    {Icon: "\ue73b", Color: 160},     // 
	"settings.gradle":            {Icon: "\ue660", Color: 24},      // 
	"svelte.config.js":           {Icon: "\ue697", Color: 196},     // 
	"sxhkdrc":                    {Icon: "\uf355", Color: 236},     // 
	"sym-lib-table":              {Icon: "\uf34c", Color: 231},     // 
	"tailwind.config.js":         {Icon: "\U000f13ff", Color: 45},  // 󱏿
	"tailwind.config.mjs":        {Icon: "\U000f13ff", Color: 45},  // 󱏿
	"tailwind.config.ts":         {Icon: "\U000f13ff", Color: 45},  // 󱏿
	"tmux.conf":                  {Icon: "\uebc8", Color: 34},      // 
	"tmux.conf.local":            {Icon: "\uebc8", Color: 34},      // 
	"tsconfig.json":              {Icon: "\ue69d", Color: 74},      // 
	"unlicense":                  {Icon: "\ue60a", Color: 185},     // 
	"vagrantfile$":               {Icon: "\uf2b8", Color: 27},      // 
	"vlcrc":                      {Icon: "\U000f057c", Color: 208}, // 󰕼
	"webpack":                    {Icon: "\U000f072b", Color: 74},  // 󰜫
	"weston.ini":                 {Icon: "\uf367", Color: 214},     // 
	"workspace":                  {Icon: "\ue63a", Color: 113},     // 
	"xmobarrc.hs":                {Icon: "\uf35e", Color: 203},     // 
	"xmobarrc":                   {Icon: "\uf35e", Color: 203},     // 
	"xmonad.hs":                  {Icon: "\uf35e", Color: 203},     // 
	"xorg.conf":                  {Icon: "\uf369", Color: 196},     // 
	"xsettingsd.conf":            {Icon: "\uf369", Color: 196},     // 
	"yarn.lock":                  {Icon: "\ue6a7", Color: 74},      // 
}

var extIconMap = map[string]IconProperties{
	".3gp":            {Icon: "\uf03d", Color: 208},     // 
	".3mf":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".7z":             {Icon: "\uf410", Color: 214},     // 
	".aac":            {Icon: "\uf001", Color: 45},      // 
	".a":              {Icon: "\ueb9c", Color: 253},     // 
	".aiff":           {Icon: "\uf001", Color: 39},      // 
	".aif":            {Icon: "\uf001", Color: 39},      // 
	".ai":             {Icon: "\ue7b4", Color: 185},     // 
	".android":        {Icon: "\ue70e", Color: 70},      // 
	".ape":            {Icon: "\uf001", Color: 39},      // 
	".apk":            {Icon: "\ue70e", Color: 70},      // 
	".app":            {Icon: "\ueae8", Color: 124},     // 
	".apple":          {Icon: "\uf179", Color: 15},      // 
	".applescript":    {Icon: "\uf179", Color: 66},      // 
	".asc":            {Icon: "\U000f099d", Color: 242}, // 󰦝
	".ass":            {Icon: "\U000f0a16", Color: 214}, // 󰨖
	".astro":          {Icon: "\ue6b3", Color: 197},     // 
	".avif":           {Icon: "\uf1c5", Color: 140},     // 
	".avi":            {Icon: "\uf03d", Color: 140},     // 
	".avro":           {Icon: "\ue60b", Color: 130},     // 
	".awk":            {Icon: "\ue795", Color: 140},     // 
	".azcli":          {Icon: "\uebe8", Color: 32},      // 
	".bak":            {Icon: "\U000f006f", Color: 66},  // 󰁯
	".bash_history":   {Icon: "\ue795", Color: 113},     // 
	".bash":           {Icon: "\ue795", Color: 113},     // 
	".bash_profile":   {Icon: "\ue795", Color: 113},     // 
	".bashrc":         {Icon: "\ue795", Color: 113},     // 
	".bat":            {Icon: "\uf17a", Color: 81},      // 
	".bats":           {Icon: "\ue795", Color: 241},     // 
	".bazel":          {Icon: "\ue63a", Color: 113},     // 
	".bib":            {Icon: "\U000f125f", Color: 185}, // 󱉟
	".bicep":          {Icon: "\ue63b", Color: 32},      // 
	".bicepparam":     {Icon: "\ue63b", Color: 103},     // 
	".blade.php":      {Icon: "\uf2f7", Color: 203},     // 
	".blend":          {Icon: "\U000f00ab", Color: 208}, // 󰂫
	".blp":            {Icon: "\U000f0ebe", Color: 68},  // 󰺾
	".bmp":            {Icon: "\uf1c5", Color: 149},     // 
	".brep":           {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".bz2":            {Icon: "\uf410", Color: 239},     // 
	".bz3":            {Icon: "\uf410", Color: 214},     // 
	".bz":             {Icon: "\uf410", Color: 239},     // 
	".bzl":            {Icon: "\ue63a", Color: 113},     // 
	".cab":            {Icon: "\ue70f", Color: 241},     // 
	".cache":          {Icon: "\uf49b", Color: 231},     // 
	".cast":           {Icon: "\uf03d", Color: 208},     // 
	".cbl":            {Icon: "\u2699", Color: 25},      // ⚙
	".cc":             {Icon: "\ue61d", Color: 204},     // 
	".ccm":            {Icon: "\ue61d", Color: 204},     // 
	".cfg":            {Icon: "\ue615", Color: 255},     // 
	".c++":            {Icon: "\ue61d", Color: 204},     // 
	".c":              {Icon: "\ue61e", Color: 111},     // 
	".cjs":            {Icon: "\ue60c", Color: 185},     // 
	".class":          {Icon: "\ue256", Color: 168},     // 
	".cljc":           {Icon: "\ue768", Color: 113},     // 
	".cljd":           {Icon: "\ue76a", Color: 74},      // 
	".clj":            {Icon: "\ue768", Color: 113},     // 
	".cljs":           {Icon: "\ue76a", Color: 74},      // 
	".cls":            {Icon: "\ue69b", Color: 239},     // 
	".cmake":          {Icon: "\ue615", Color: 66},      // 
	".cmd":            {Icon: "\ue70f", Color: 239},     // 
	".cob":            {Icon: "\u2699", Color: 25},      // ⚙
	".cobol":          {Icon: "\u2699", Color: 25},      // ⚙
	".coffee":         {Icon: "\uf0f4", Color: 185},     // 
	".conf":           {Icon: "\ue615", Color: 66},      // 
	".config.ru":      {Icon: "\ue791", Color: 52},      // 
	".cp":             {Icon: "\ue61d", Color: 74},      // 
	".cpio":           {Icon: "\uf410", Color: 239},     // 
	".cpp":            {Icon: "\ue61d", Color: 74},      // 
	".cppm":           {Icon: "\ue61d", Color: 74},      // 
	".cpy":            {Icon: "\u2699", Color: 25},      // ⚙
	".crdownload":     {Icon: "\uf019", Color: 43},      // 
	".cr":             {Icon: "\ue62f", Color: 251},     // 
	".csh":            {Icon: "\ue795", Color: 240},     // 
	".cshtml":         {Icon: "\uf1fa", Color: 239},     // 
	".cs":             {Icon: "\U000f031b", Color: 58},  // 󰌛
	".cson":           {Icon: "\ue60b", Color: 185},     // 
	".csproj":         {Icon: "\U000f031b", Color: 58},  // 󰌛
	".css":            {Icon: "\ue749", Color: 75},      // 
	".csv":            {Icon: "\uf1c3", Color: 113},     // 
	".csx":            {Icon: "\U000f031b", Color: 58},  // 󰌛
	".cts":            {Icon: "\ue628", Color: 74},      // 
	".cue":            {Icon: "\U000f0cb9", Color: 211}, // 󰲹
	".cuh":            {Icon: "\ue64b", Color: 140},     // 
	".cu":             {Icon: "\ue64b", Color: 113},     // 
	".cxx":            {Icon: "\ue61d", Color: 74},      // 
	".cxxm":           {Icon: "\ue61d", Color: 74},      // 
	".dart":           {Icon: "\ue798", Color: 25},      // 
	".db":             {Icon: "\uf1c0", Color: 188},     // 
	".dconf":          {Icon: "\ue706", Color: 188},     // 
	".deb":            {Icon: "\ue77d", Color: 88},      // 
	".desktop":        {Icon: "\uf108", Color: 54},      // 
	".d":              {Icon: "\ue7af", Color: 28},      // 
	".diff":           {Icon: "\uf440", Color: 241},     // 
	".djvu":           {Icon: "\uf02d", Color: 241},     // 
	".dll":            {Icon: "\ue70f", Color: 241},     // 
	".doc":            {Icon: "\U000f0219", Color: 26},  // 󰈙
	".docx":           {Icon: "\U000f0219", Color: 26},  // 󰈙
	".dot":            {Icon: "\U000f1049", Color: 24},  // 󱁉
	".download":       {Icon: "\uf019", Color: 43},      // 
	".drl":            {Icon: "\ue28c", Color: 217},     // 
	".dropbox":        {Icon: "\ue707", Color: 27},      // 
	".ds_store":       {Icon: "\uf179", Color: 15},      // 
	".DS_store":       {Icon: "\uf179", Color: 15},      // 
	".d.ts":           {Icon: "\ue628", Color: 172},     // 
	".dump":           {Icon: "\uf1c0", Color: 188},     // 
	".dwg":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".dxf":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".ebook":          {Icon: "\ue28b", Color: 241},     // 
	".ebuild":         {Icon: "\uf30d", Color: 56},      // 
	".editorconfig":   {Icon: "\ue615", Color: 241},     // 
	".edn":            {Icon: "\ue76a", Color: 74},      // 
	".eex":            {Icon: "\ue62d", Color: 140},     // 
	".ejs":            {Icon: "\ue618", Color: 185},     // 
	".elc":            {Icon: "\ue632", Color: 97},      // 
	".elf":            {Icon: "\ueae8", Color: 124},     // 
	".el":             {Icon: "\ue632", Color: 97},      // 
	".elm":            {Icon: "\ue62c", Color: 74},      // 
	".eln":            {Icon: "\ue632", Color: 97},      // 
	".env":            {Icon: "\uf462", Color: 227},     // 
	".eot":            {Icon: "\uf031", Color: 124},     // 
	".epp":            {Icon: "\ue631", Color: 214},     // 
	".epub":           {Icon: "\ue28a", Color: 241},     // 
	".erb":            {Icon: "\ue73b", Color: 160},     // 
	".erl":            {Icon: "\ue7b1", Color: 163},     // 
	".exe":            {Icon: "\uf17a", Color: 81},      // 
	".ex":             {Icon: "\ue62d", Color: 140},     // 
	".exs":            {Icon: "\ue62d", Color: 140},     // 
	".f3d":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".f90":            {Icon: "\U000f121a", Color: 97},  // 󱈚
	".fbx":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".fcbak":          {Icon: "\uf336", Color: 160},     // 
	".fcmacro":        {Icon: "\uf336", Color: 160},     // 
	".fcmat":          {Icon: "\uf336", Color: 160},     // 
	".fcparam":        {Icon: "\uf336", Color: 160},     // 
	".fcscript":       {Icon: "\uf336", Color: 160},     // 
	".fcstd1":         {Icon: "\uf336", Color: 160},     // 
	".fcstd":          {Icon: "\uf336", Color: 160},     // 
	".fctb":           {Icon: "\uf336", Color: 160},     // 
	".fctl":           {Icon: "\uf336", Color: 160},     // 
	".fdmdownload":    {Icon: "\uf019", Color: 43},      // 
	".f#":             {Icon: "\ue7a7", Color: 74},      // 
	".fish":           {Icon: "\ue795", Color: 249},     // 
	".flac":           {Icon: "\uf001", Color: 241},     // 
	".flc":            {Icon: "\uf031", Color: 255},     // 
	".flf":            {Icon: "\uf031", Color: 255},     // 
	".flv":            {Icon: "\uf03d", Color: 241},     // 
	".fnl":            {Icon: "\ue6af", Color: 230},     // 
	".font":           {Icon: "\uf031", Color: 241},     // 
	".fs":             {Icon: "\ue7a7", Color: 74},      // 
	".fsi":            {Icon: "\ue7a7", Color: 74},      // 
	".fsscript":       {Icon: "\ue7a7", Color: 74},      // 
	".fsx":            {Icon: "\ue7a7", Color: 74},      // 
	".gcode":          {Icon: "\U000f0af4", Color: 234}, // 󰫴
	".gd":             {Icon: "\ue65f", Color: 66},      // 
	".gdoc":           {Icon: "\uf1c2", Color: 40},      // 
	".gemfile":        {Icon: "\ue21e", Color: 160},     // 
	".gem":            {Icon: "\ue21e", Color: 160},     // 
	".gemspec":        {Icon: "\ue21e", Color: 160},     // 
	".gform":          {Icon: "\uf298", Color: 40},      // 
	".gif":            {Icon: "\uf1c5", Color: 140},     // 
	".git":            {Icon: "\U000f02a2", Color: 202}, // 󰊢
	".glb":            {Icon: "\uf1b2", Color: 214},     // 
	".gnumakefile":    {Icon: "\ue779", Color: 66},      // 
	".godot":          {Icon: "\ue65f", Color: 66},      // 
	".go":             {Icon: "\ue627", Color: 74},      // 
	".gql":            {Icon: "\uf20e", Color: 199},     // 
	".gradle":         {Icon: "\ue256", Color: 168},     // 
	".graphql":        {Icon: "\uf20e", Color: 199},     // 
	".gresource":      {Icon: "\uf362", Color: 231},     // 
	".groovy":         {Icon: "\ue775", Color: 24},      // 
	".gsheet":         {Icon: "\uf1c3", Color: 10},      // 
	".gslides":        {Icon: "\uf1c4", Color: 226},     // 
	".guardfile":      {Icon: "\ue21e", Color: 241},     // 
	".gv":             {Icon: "\U000f1049", Color: 24},  // 󱁉
	".gz":             {Icon: "\uf410", Color: 241},     // 
	".haml":           {Icon: "\ue60e", Color: 255},     // 
	".hbs":            {Icon: "\ue60f", Color: 202},     // 
	".hc":             {Icon: "\U000f00a2", Color: 227}, // 󰂢
	".heex":           {Icon: "\ue62d", Color: 140},     // 
	".hex":            {Icon: "\U000f12a7", Color: 27},  // 󱊧
	".hh":             {Icon: "\uf0fd", Color: 140},     // 
	".h":              {Icon: "\uf0fd", Color: 140},     // 
	".hpp":            {Icon: "\uf0fd", Color: 140},     // 
	".hrl":            {Icon: "\ue7b1", Color: 163},     // 
	".hs":             {Icon: "\ue777", Color: 140},     // 
	".htm":            {Icon: "\uf13b", Color: 196},     // 
	".html":           {Icon: "\uf13b", Color: 196},     // 
	".huff":           {Icon: "\U000f0858", Color: 56},  // 󰡘
	".hurl":           {Icon: "\uf0ec", Color: 198},     // 
	".hx":             {Icon: "\ue666", Color: 208},     // 
	".hxx":            {Icon: "\uf0fd", Color: 140},     // 
	".icalendar":      {Icon: "\uf073", Color: 18},      // 
	".ical":           {Icon: "\uf073", Color: 18},      // 
	".ico":            {Icon: "\uf1c5", Color: 185},     // 
	".ics":            {Icon: "\uf073", Color: 18},      // 
	".ifb":            {Icon: "\uf073", Color: 18},      // 
	".ifc":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".ige":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".iges":           {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".igs":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".image":          {Icon: "\uf1c5", Color: 185},     // 
	".img":            {Icon: "\ue271", Color: 181},     // 
	".iml":            {Icon: "\ue7b5", Color: 239},     // 
	".import":         {Icon: "\uf0c6", Color: 255},     // 
	".info":           {Icon: "\uf129", Color: 230},     // 
	".ini":            {Icon: "\uf17a", Color: 81},      // 
	".ino":            {Icon: "\uf34b", Color: 73},      // 
	".ipynb":          {Icon: "\ue606", Color: 214},     // 
	".iso":            {Icon: "\ue271", Color: 239},     // 
	".ixx":            {Icon: "\ue61d", Color: 74},      // 
	".j2c":            {Icon: "\uf1c5", Color: 239},     // 
	".j2k":            {Icon: "\uf1c5", Color: 239},     // 
	".jad":            {Icon: "\ue256", Color: 168},     // 
	".jar":            {Icon: "\ue256", Color: 168},     // 
	".java":           {Icon: "\ue256", Color: 168},     // 
	".jfif":           {Icon: "\uf1c5", Color: 241},     // 
	".jfi":            {Icon: "\uf1c5", Color: 241},     // 
	".jif":            {Icon: "\uf1c5", Color: 241},     // 
	".jl":             {Icon: "\ue624", Color: 241},     // 
	".jmd":            {Icon: "\uf48a", Color: 74},      // 
	".jp2":            {Icon: "\uf1c5", Color: 241},     // 
	".jpeg":           {Icon: "\uf1c5", Color: 241},     // 
	".jpe":            {Icon: "\uf1c5", Color: 241},     // 
	".jpg":            {Icon: "\uf1c5", Color: 241},     // 
	".jpx":            {Icon: "\uf1c5", Color: 241},     // 
	".js":             {Icon: "\ue74e", Color: 185},     // 
	".json5":          {Icon: "\ue60b", Color: 185},     // 
	".jsonc":          {Icon: "\ue60b", Color: 185},     // 
	".json":           {Icon: "\ue60b", Color: 185},     // 
	".jsx":            {Icon: "\ue7ba", Color: 45},      // 
	".jwmrc":          {Icon: "\uf35b", Color: 32},      // 
	".jxl":            {Icon: "\uf1c5", Color: 241},     // 
	".kbx":            {Icon: "\U000f0bc4", Color: 243}, // 󰯄
	".kdb":            {Icon: "\uf23e", Color: 71},      // 
	".kdbx":           {Icon: "\uf23e", Color: 71},      // 
	".kdenlive":       {Icon: "\uf33c", Color: 110},     // 
	".kdenlivetitle":  {Icon: "\uf33c", Color: 110},     // 
	".kicad_dru":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_mod":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_pcb":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_prl":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_pro":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_sch":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_sym":      {Icon: "\uf34c", Color: 231},     // 
	".kicad_wks":      {Icon: "\uf34c", Color: 231},     // 
	".ko":             {Icon: "\uf17c", Color: 253},     // 
	".kpp":            {Icon: "\uf33d", Color: 201},     // 
	".kra":            {Icon: "\uf33d", Color: 201},     // 
	".krz":            {Icon: "\uf33d", Color: 201},     // 
	".ksh":            {Icon: "\ue795", Color: 241},     // 
	".kt":             {Icon: "\ue634", Color: 99},      // 
	".kts":            {Icon: "\ue634", Color: 99},      // 
	".latex":          {Icon: "\ue69b", Color: 241},     // 
	".lck":            {Icon: "\ue672", Color: 250},     // 
	".leex":           {Icon: "\ue62d", Color: 140},     // 
	".less":           {Icon: "\ue758", Color: 54},      // 
	".lff":            {Icon: "\uf031", Color: 255},     // 
	".lhs":            {Icon: "\ue777", Color: 140},     // 
	".license":        {Icon: "\U000f0219", Color: 185}, // 󰈙
	".liquid":         {Icon: "\ue670", Color: 106},     // 
	".localized":      {Icon: "\uf179", Color: 15},      // 
	".lock":           {Icon: "\uf023", Color: 241},     // 
	".log":            {Icon: "\uf4ed", Color: 188},     // 
	".lrc":            {Icon: "\U000f0a16", Color: 214}, // 󰨖
	".luac":           {Icon: "\ue620", Color: 74},      // 
	".lua":            {Icon: "\ue620", Color: 74},      // 
	".luau":           {Icon: "\ue620", Color: 74},      // 
	".lz4":            {Icon: "\uf410", Color: 241},     // 
	".lzh":            {Icon: "\uf410", Color: 241},     // 
	".lz":             {Icon: "\uf410", Color: 241},     // 
	".lzma":           {Icon: "\uf410", Color: 241},     // 
	".lzo":            {Icon: "\uf410", Color: 241},     // 
	".m3u8":           {Icon: "\U000f0cb9", Color: 211}, // 󰲹
	".m3u":            {Icon: "\U000f0cb9", Color: 211}, // 󰲹
	".m4a":            {Icon: "\uf001", Color: 239},     // 
	".m4v":            {Icon: "\uf03d", Color: 208},     // 
	".magnet":         {Icon: "\uf076", Color: 124},     // 
	".makefile":       {Icon: "\ue779", Color: 66},      // 
	".markdown":       {Icon: "\uf48a", Color: 74},      // 
	".material":       {Icon: "\U000f0509", Color: 163}, // 󰔉
	".md5":            {Icon: "\U000f0565", Color: 103}, // 󰕥
	".md":             {Icon: "\uf48a", Color: 74},      // 
	".mdx":            {Icon: "\uf48a", Color: 74},      // 
	".m":              {Icon: "\ue61e", Color: 111},     // 
	".mint":           {Icon: "\U000f032a", Color: 108}, // 󰌪
	".mjs":            {Icon: "\ue74e", Color: 185},     // 
	".mkd":            {Icon: "\uf48a", Color: 74},      // 
	".mk":             {Icon: "\ue795", Color: 241},     // 
	".mkv":            {Icon: "\uf03d", Color: 241},     // 
	".ml":             {Icon: "\ue67a", Color: 166},     // 
	".mli":            {Icon: "\ue67a", Color: 166},     // 
	".mm":             {Icon: "\ue61d", Color: 111},     // 
	".mobi":           {Icon: "\ue28b", Color: 241},     // 
	".mo":             {Icon: "\u221e", Color: 135},     // ∞
	".mojo":           {Icon: "\uf06d", Color: 196},     // 
	".mov":            {Icon: "\uf03d", Color: 241},     // 
	".mp3":            {Icon: "\uf001", Color: 241},     // 
	".mp4":            {Icon: "\uf03d", Color: 241},     // 
	".mpp":            {Icon: "\ue61d", Color: 74},      // 
	".msf":            {Icon: "\uf370", Color: 33},      // 
	".msi":            {Icon: "\ue70f", Color: 241},     // 
	".mts":            {Icon: "\ue628", Color: 74},      // 
	".mustache":       {Icon: "\ue60f", Color: 241},     // 
	".nfo":            {Icon: "\uf129", Color: 230},     // 
	".nim":            {Icon: "\ue677", Color: 220},     // 
	".nix":            {Icon: "\uf313", Color: 111},     // 
	".node":           {Icon: "\U000f0399", Color: 197}, // 󰎙
	".npmignore":      {Icon: "\ue71e", Color: 197},     // 
	".nswag":          {Icon: "\ue60b", Color: 112},     // 
	".nu":             {Icon: "\u003e", Color: 36},      // >
	".obj":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".odp":            {Icon: "\uf1c4", Color: 241},     // 
	".ods":            {Icon: "\uf1c3", Color: 241},     // 
	".odt":            {Icon: "\uf1c2", Color: 241},     // 
	".ogg":            {Icon: "\uf001", Color: 241},     // 
	".ogv":            {Icon: "\uf03d", Color: 241},     // 
	".o":              {Icon: "\ueae8", Color: 124},     // 
	".opus":           {Icon: "\U000f0223", Color: 208}, // 󰈣
	".org":            {Icon: "\ue633", Color: 73},      // 
	".otf":            {Icon: "\uf031", Color: 241},     // 
	".out":            {Icon: "\ueae8", Color: 124},     // 
	".part":           {Icon: "\uf43a", Color: 241},     // 
	".patch":          {Icon: "\uf440", Color: 241},     // 
	".pck":            {Icon: "\uf487", Color: 66},      // 
	".pdf":            {Icon: "\uf1c1", Color: 124},     // 
	".php":            {Icon: "\ue73d", Color: 61},      // 
	".pl":             {Icon: "\ue769", Color: 74},      // 
	".pls":            {Icon: "\U000f0cb9", Color: 211}, // 󰲹
	".ply":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".pm":             {Icon: "\ue769", Color: 74},      // 
	".png":            {Icon: "\uf1c5", Color: 241},     // 
	".po":             {Icon: "\U000f05ca", Color: 31},  // 󰗊
	".pot":            {Icon: "\U000f05ca", Color: 31},  // 󰗊
	".pp":             {Icon: "\ue631", Color: 214},     // 
	".ppt":            {Icon: "\uf1c4", Color: 241},     // 
	".pptx":           {Icon: "\uf1c4", Color: 241},     // 
	".prisma":         {Icon: "\ue684", Color: 62},      // 
	".procfile":       {Icon: "\ue21e", Color: 241},     // 
	".pro":            {Icon: "\ue7a1", Color: 179},     // 
	".properties":     {Icon: "\ue60b", Color: 185},     // 
	".ps1":            {Icon: "\ue795", Color: 241},     // 
	".psb":            {Icon: "\ue7b8", Color: 74},      // 
	".psd1":           {Icon: "\U000f0a0a", Color: 68},  // 󰨊
	".psd":            {Icon: "\ue7b8", Color: 241},     // 
	".psm1":           {Icon: "\U000f0a0a", Color: 68},  // 󰨊
	".pub":            {Icon: "\U000f0dd6", Color: 222}, // 󰷖
	".pxd":            {Icon: "\ue606", Color: 39},      // 
	".pxi":            {Icon: "\ue606", Color: 39},      // 
	".pxm":            {Icon: "\uf1c5", Color: 241},     // 
	".pyc":            {Icon: "\ue606", Color: 214},     // 
	".pyd":            {Icon: "\ue606", Color: 222},     // 
	".py":             {Icon: "\ue606", Color: 214},     // 
	".pyi":            {Icon: "\ue606", Color: 214},     // 
	".pyo":            {Icon: "\ue606", Color: 222},     // 
	".pyw":            {Icon: "\ue606", Color: 39},      // 
	".pyx":            {Icon: "\ue606", Color: 39},      // 
	".qm":             {Icon: "\U000f05ca", Color: 31},  // 󰗊
	".qml":            {Icon: "\uf375", Color: 77},      // 
	".qrc":            {Icon: "\uf375", Color: 77},      // 
	".qss":            {Icon: "\uf375", Color: 77},      // 
	".query":          {Icon: "\ue21c", Color: 107},     // 
	".rakefile":       {Icon: "\ue21e", Color: 160},     // 
	".rake":           {Icon: "\ue791", Color: 52},      // 
	".rar":            {Icon: "\uf410", Color: 241},     // 
	".razor":          {Icon: "\uf1fa", Color: 81},      // 
	".rb":             {Icon: "\ue21e", Color: 160},     // 
	".rdata":          {Icon: "\uf25d", Color: 68},      // 
	".rdb":            {Icon: "\ue76d", Color: 160},     // 
	".rdoc":           {Icon: "\uf48a", Color: 74},      // 
	".rds":            {Icon: "\uf25d", Color: 68},      // 
	".readme":         {Icon: "\uf48a", Color: 74},      // 
	".res":            {Icon: "\ue688", Color: 167},     // 
	".resi":           {Icon: "\ue688", Color: 204},     // 
	".r":              {Icon: "\uf25d", Color: 68},      // 
	".rlib":           {Icon: "\ue7a8", Color: 216},     // 
	".rmd":            {Icon: "\uf48a", Color: 74},      // 
	".rpm":            {Icon: "\ue7bb", Color: 52},      // 
	".rproj":          {Icon: "\U000f05c6", Color: 29},  // 󰗆
	".rs":             {Icon: "\ue7a8", Color: 216},     // 
	".rspec":          {Icon: "\ue21e", Color: 160},     // 
	".rspec_parallel": {Icon: "\ue21e", Color: 160},     // 
	".rspec_status":   {Icon: "\ue21e", Color: 160},     // 
	".rss":            {Icon: "\uf09e", Color: 130},     // 
	".rtf":            {Icon: "\U000f0219", Color: 241}, // 󰈙
	".rubydoc":        {Icon: "\ue73b", Color: 160},     // 
	".ru":             {Icon: "\ue21e", Color: 160},     // 
	".sass":           {Icon: "\ue603", Color: 169},     // 
	".sbt":            {Icon: "\ue737", Color: 167},     // 
	".scad":           {Icon: "\uf34e", Color: 220},     // 
	".scala":          {Icon: "\ue737", Color: 74},      // 
	".sc":             {Icon: "\ue737", Color: 167},     // 
	".scm":            {Icon: "\U000f0627", Color: 255}, // 󰘧
	".scss":           {Icon: "\ue749", Color: 204},     // 
	".sha1":           {Icon: "\U000f0565", Color: 103}, // 󰕥
	".sha224":         {Icon: "\U000f0565", Color: 103}, // 󰕥
	".sha256":         {Icon: "\U000f0565", Color: 103}, // 󰕥
	".sha384":         {Icon: "\U000f0565", Color: 103}, // 󰕥
	".sha512":         {Icon: "\U000f0565", Color: 103}, // 󰕥
	".shell":          {Icon: "\ue795", Color: 239},     // 
	".sh":             {Icon: "\ue795", Color: 239},     // 
	".sig":            {Icon: "\u03bb", Color: 166},     // λ
	".signature":      {Icon: "\u03bb", Color: 166},     // λ
	".skp":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".sldasm":         {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".sldprt":         {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".slim":           {Icon: "\ue73b", Color: 160},     // 
	".sln":            {Icon: "\ue70c", Color: 39},      // 
	".slvs":           {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".sml":            {Icon: "\u03bb", Color: 166},     // λ
	".so":             {Icon: "\uf17c", Color: 241},     // 
	".sol":            {Icon: "\ue656", Color: 74},      // 
	".spec.js":        {Icon: "\uf499", Color: 185},     // 
	".spec.jsx":       {Icon: "\uf499", Color: 45},      // 
	".spec.ts":        {Icon: "\uf499", Color: 74},      // 
	".spec.tsx":       {Icon: "\uf499", Color: 26},      // 
	".sql":            {Icon: "\uf1c0", Color: 188},     // 
	".sqlite3":        {Icon: "\ue7c4", Color: 25},      // 
	".sqlite":         {Icon: "\ue7c4", Color: 25},      // 
	".srt":            {Icon: "\U000f0a16", Color: 214}, // 󰨖
	".ssa":            {Icon: "\U000f0a16", Color: 214}, // 󰨖
	".ste":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".step":           {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".stl":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".stp":            {Icon: "\U000f0eeb", Color: 101}, // 󰻫
	".strings":        {Icon: "\U000f05ca", Color: 31},  // 󰗊
	".sty":            {Icon: "\ue69b", Color: 239},     // 
	".styl":           {Icon: "\ue600", Color: 148},     // 
	".stylus":         {Icon: "\ue600", Color: 148},     // 
	".sub":            {Icon: "\U000f0a16", Color: 214}, // 󰨖
	".sublime":        {Icon: "\ue7aa", Color: 166},     // 
	".suo":            {Icon: "\ue70c", Color: 98},      // 
	".svelte":         {Icon: "\ue697", Color: 208},     // 
	".svg":            {Icon: "\uf1c5", Color: 241},     // 
	".svh":            {Icon: "\U000f035b", Color: 28},  // 󰍛
	".sv":             {Icon: "\U000f035b", Color: 28},  // 󰍛
	".swift":          {Icon: "\ue755", Color: 208},     // 
	".tar":            {Icon: "\uf410", Color: 241},     // 
	".taz":            {Icon: "\uf410", Color: 241},     // 
	".tbc":            {Icon: "\U000f06d3", Color: 25},  // 󰛓
	".tbz2":           {Icon: "\uf410", Color: 241},     // 
	".tbz":            {Icon: "\uf410", Color: 241},     // 
	".tcl":            {Icon: "\U000f06d3", Color: 25},  // 󰛓
	".templ":          {Icon: "\ueac4", Color: 178},     // 
	".terminal":       {Icon: "\uf489", Color: 34},      // 
	".test.js":        {Icon: "\uf499", Color: 185},     // 
	".test.jsx":       {Icon: "\uf499", Color: 45},      // 
	".test.ts":        {Icon: "\uf499", Color: 74},      // 
	".test.tsx":       {Icon: "\uf499", Color: 26},      // 
	".tex":            {Icon: "\ue69b", Color: 79},      // 
	".tf":             {Icon: "\ue69a", Color: 93},      // 
	".tfvars":         {Icon: "\uf15b", Color: 93},      // 
	".tgz":            {Icon: "\uf410", Color: 241},     // 
	".t":              {Icon: "\ue769", Color: 74},      // 
	".tiff":           {Icon: "\uf1c5", Color: 241},     // 
	".tlz":            {Icon: "\uf410", Color: 241},     // 
	".tmux":           {Icon: "\uebc8", Color: 34},      // 
	".toml":           {Icon: "\ue6b2", Color: 241},     // 
	".torrent":        {Icon: "\ue275", Color: 76},      // 
	".tres":           {Icon: "\ue65f", Color: 66},      // 
	".tscn":           {Icon: "\ue65f", Color: 66},      // 
	".tsconfig":       {Icon: "\ue772", Color: 208},     // 
	".ts":             {Icon: "\ue628", Color: 74},      // 
	".tsv":            {Icon: "\uf1c3", Color: 241},     // 
	".tsx":            {Icon: "\ue7ba", Color: 74},      // 
	".ttf":            {Icon: "\uf031", Color: 241},     // 
	".twig":           {Icon: "\ue61c", Color: 241},     // 
	".txt":            {Icon: "\uf15c", Color: 241},     // 
	".txz":            {Icon: "\uf410", Color: 241},     // 
	".typoscript":     {Icon: "\ue772", Color: 208},     // 
	".tz":             {Icon: "\uf410", Color: 241},     // 
	".tzo":            {Icon: "\uf410", Color: 241},     // 
	".ui":             {Icon: "\uf2d0", Color: 17},      // 
	".vala":           {Icon: "\ue69e", Color: 91},      // 
	".vhd":            {Icon: "\U000f035b", Color: 28},  // 󰍛
	".vhdl":           {Icon: "\U000f035b", Color: 28},  // 󰍛
	".vh":             {Icon: "\U000f035b", Color: 28},  // 󰍛
	".v":              {Icon: "\U000f035b", Color: 28},  // 󰍛
	".video":          {Icon: "\uf03d", Color: 241},     // 
	".vim":            {Icon: "\ue62b", Color: 28},      // 
	".vsh":            {Icon: "\ue6ac", Color: 67},      // 
	".vsix":           {Icon: "\ue70c", Color: 98},      // 
	".vue":            {Icon: "\U000f0844", Color: 113}, // 󰡄
	".war":            {Icon: "\ue256", Color: 168},     // 
	".wasm":           {Icon: "\ue6a1", Color: 62},      // 
	".wav":            {Icon: "\uf001", Color: 241},     // 
	".webmanifest":    {Icon: "\ue60b", Color: 185},     // 
	".webm":           {Icon: "\uf03d", Color: 241},     // 
	".webpack":        {Icon: "\U000f072b", Color: 74},  // 󰜫
	".webp":           {Icon: "\uf1c5", Color: 241},     // 
	".windows":        {Icon: "\uf17a", Color: 81},      // 
	".wma":            {Icon: "\uf001", Color: 39},      // 
	".woff2":          {Icon: "\uf031", Color: 241},     // 
	".woff":           {Icon: "\uf031", Color: 241},     // 
	".wrl":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".wrz":            {Icon: "\U000f01a7", Color: 102}, // 󰆧
	".wvc":            {Icon: "\uf001", Color: 39},      // 
	".wv":             {Icon: "\uf001", Color: 39},      // 
	".xaml":           {Icon: "\U000f0673", Color: 56},  // 󰙳
	".xcf":            {Icon: "\uf338", Color: 240},     // 
	".xcplayground":   {Icon: "\ue755", Color: 166},     // 
	".xcstrings":      {Icon: "\U000f05ca", Color: 31},  // 󰗊
	".xhtml":          {Icon: "\uf13b", Color: 196},     // 
	".x":              {Icon: "\ue691", Color: 111},     // 
	".xls":            {Icon: "\uf1c3", Color: 34},      // 
	".xlsx":           {Icon: "\uf1c3", Color: 34},      // 
	".xm":             {Icon: "\ue691", Color: 74},      // 
	".xml":            {Icon: "\uf121", Color: 160},     // 
	".xpi":            {Icon: "\ueae6", Color: 17},      // 
	".xul":            {Icon: "\uf121", Color: 166},     // 
	".xz":             {Icon: "\uf410", Color: 241},     // 
	".yaml":           {Icon: "\uf481", Color: 160},     // 
	".yml":            {Icon: "\uf481", Color: 160},     // 
	".zig":            {Icon: "\ue6a9", Color: 172},     // 
	".zip":            {Icon: "\uf410", Color: 241},     // 
	".zsh":            {Icon: "\ue795", Color: 241},     // 
	".zshrc":          {Icon: "\ue795", Color: 241},     // 
	".zsh-theme":      {Icon: "\ue795", Color: 241},     // 
	".zst":            {Icon: "\uf410", Color: 241},     // 
}

func patchFileIconsForNerdFontsV2() {
	extIconMap[".cs"] = IconProperties{Icon: "\uf81a", Color: 58}       // 
	extIconMap[".csproj"] = IconProperties{Icon: "\uf81a", Color: 58}   // 
	extIconMap[".csx"] = IconProperties{Icon: "\uf81a", Color: 58}      // 
	extIconMap[".license"] = IconProperties{Icon: "\uf718", Color: 241} // 
	extIconMap[".node"] = IconProperties{Icon: "\uf898", Color: 197}    // 
	extIconMap[".rtf"] = IconProperties{Icon: "\uf718", Color: 241}     // 
	extIconMap[".vue"] = IconProperties{Icon: "\ufd42", Color: 113}     // ﵂
}

func IconForFile(name string, isSubmodule bool, isLinkedWorktree bool, isDirectory bool) IconProperties {
	base := filepath.Base(name)
	if icon, ok := nameIconMap[base]; ok {
		return icon
	}

	ext := strings.ToLower(filepath.Ext(name))
	if icon, ok := extIconMap[ext]; ok {
		return icon
	}

	if isSubmodule {
		return DEFAULT_SUBMODULE_ICON
	} else if isLinkedWorktree {
		return IconProperties{LINKED_WORKTREE_ICON, 239}
	} else if isDirectory {
		return DEFAULT_DIRECTORY_ICON
	}
	return DEFAULT_FILE_ICON
}
